<!-- .\" $Id: papif.html,v 1.9 2004/10/04 16:43:17 terpstra Exp $ -->
<!-- .TH PAPIF 3 "September, 2004" "PAPI Programmer's Reference" "PAPI" -->
<HTML>
<HEAD>
<TITLE>
Manual Page - PAPIF(3)</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<STYLE TYPE="text/css">

<!--

p

{font-family: Verdana, Helvetica, Arial, sans-serif}



.style

{font-family: Verdana, Helvetica, Arial, sans-serif}



td.navBar A:link

{color: #ddd8d2;

font-weight: bold;

text-decoration: none}



td.navBar A:visited

{color: #ccc9c5;

font-weight: bold;

text-decoration: none}



td.navBar A:hover

{color: #ffffff}



.navBar

{color: #77797c;

font-family: Verdana, Helvetica, Arial, sans-serif;

font-size:  11px;

text-transform: uppercase}



a:visited

{color: #50525f}



a:link

{color: #8b3409}



a:hover

{color: #660000}



a:active

{background-color: #b1afad}



.footerNote

{background-color: #ffffff;

background-image: url(../images/line.gif);

background-position: right top;

background-repeat: repeat-x;

color: #77797c;

font-family: Verdana, Helvetica, Arial, sans-serif;

font-size:  10px}



BODY

{font-family: Verdana, Helvetica, Arial, sans-serif}

-->

</STYLE> <SCRIPT LANGUAGE="JavaScript">

<!--

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}



function MM_preloadimages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadimages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}



function MM_findObj(n, d) { //v4.0

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && document.getElementById) x=document.getElementById(n); return x;

}



function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

//-->

</SCRIPT> 

</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

<TABLE WIDTH="101%" BORDER="0" CELLSPACING="0" CELLPADDING="0">

<TR>

<TD VALIGN="top" HEIGHT="75">

<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="75">

<TR>

<TD BACKGROUND="../images/menubg95.jpg" HEIGHT="75">

<TABLE WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center" HEIGHT="75">

<TR VALIGN="bottom">

<TD WIDTH="760" ALIGN="center" HEIGHT="50" COLSPAN="2">

<IMG SRC="../images/headertop.jpg" WIDTH="760" HEIGHT="50"></TD>

</TR>

<TR>

<TD HEIGHT="10" ALIGN="center" VALIGN="top" BGCOLOR="#333333" WIDTH="135">

<IMG SRC="../images/logoleft.jpg" WIDTH="135" HEIGHT="25" VSPACE="0" HSPACE="0" ALIGN="left">

</TD>

<TD CLASS="navBar" HEIGHT="25" ALIGN="center" VALIGN="middle" BGCOLOR="#333333" NOWRAP WIDTH="625" BACKGROUND="../images/menubg.jpg">

<CENTER>

<A HREF="http://icl.cs.utk.edu/papi/">

PAPI HOME

</A>

</CENTER>

</TD>

</TR>

<TR>

<TD HEIGHT="10" ALIGN="center" VALIGN="top" BGCOLOR="FFFFFF" WIDTH="135">

<IMG SRC="../images/logobottom.jpg" WIDTH="135" HEIGHT="20" VSPACE="0" HSPACE="0" ALIGN="left">

</TD>

<TD CLASS="navBar" HEIGHT="10" ALIGN="center" VALIGN="bottom" BGCOLOR="FFFFFF" WIDTH="625">

<IMG SRC="../images/white.jpg" WIDTH="625" HEIGHT="20" VSPACE="0" HSPACE="0" ALIGN="left">

</TD>

</TR>

</TABLE>

</TD>

</TR>

</TABLE>

</TD>

</TR>

<TR>

<TD VALIGN="top">

<TABLE WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center" CLASS="style">

<TR>

<TD CLASS="STYLE">

<P>
<!-- .SH NAME -->
<A name=0>

     <H3>NAME</H3>

</A>
<BLOCKQUOTE>
PAPIF - Performance Application Programming Interface (Fortran)
<P>
<!-- .SH SYNOPSIS -->
</BLOCKQUOTE>
<A name=contents></A><H3>CONTENTS</H3></A>
<BLOCKQUOTE>
<A HREF=#1>Synopsis</A><BR>
<A HREF=#2>Description</A><BR>
<A HREF=#3>Return Values</A><BR>
<A HREF=#4>See Also</A><BR>
</BLOCKQUOTE>
<A name=5>

     <H3>SYNOPSIS</H3>

</A>
<BLOCKQUOTE>
<!-- .nf -->
<PRE>
<!-- .B #include "fpapi.h" -->
<B>#include fpapi.h</B> 
<!-- .BI "call PAPIF_function_name(" arg1,arg2,...,check" ) -->
<B>call PAPIF_function_name(</B><I>arg1,arg2,...,check</I><B>)</B> 
<!-- .fi -->
</PRE>
<P>
<P>
<!-- .SH DESCRIPTION -->
</BLOCKQUOTE>
<A name=2>

     <H3>DESCRIPTION</H3>

</A>
<BLOCKQUOTE>
<!-- .B Fortran Calling Interface -->
<B>Fortran Calling Interface</B> The PAPI library comes with a specific Fortran library interface. The
Fortran interface covers the complete library with a few minor
exceptions. Functions returning C pointers to structures, such as
<!-- .BR PAPI_get_opt(3) -->
<A HREF="papi_get_opt.html">PAPI_get_opt (3)</A> 
and
<!-- .BR PAPI_get_executable_info(3) -->
<A HREF="papi_get_executable_info.html">PAPI_get_executable_info (3)</A> 
, are either not implemented in the Fortran interface, or implemented with
different calling semantics.
<P>
Semantics for specific functions in the Fortran interface are
documented on the equivalent C man page. For example, the semantics
and functionality of
<!-- .B PAPIF_accum -->
<B>PAPIF_accum</B> are covered in the
<!-- .BR PAPI_accum(3) -->
<A HREF="papi_accum.html">PAPI_accum (3)</A> 
man page.
<P>
For most architectures the following relation holds between the pseudo-types
listed and Fortran variable types.
<P>
<!-- .TS -->
<P><BLOCKQUOTE><TABLE bgcolor=#E0E0E0 border=1 cellspacing=0 cellpadding=3>
<!-- box, tab(!); -->
<!-- c  | c  | c -->
<!-- lt | lt | lt. -->
<TR valign=top>
<TD align=center>Pseuodo-type</TD><TD align=center>Fortran type</TD><TD align=center>Description</TD></TR>
<TR valign=top>
<TD>C_INT</TD><TD>INTEGER</TD><TD>Default Integer type</TD></TR>
<TR valign=top>
<TD>C_FLOAT</TD><TD>REAL</TD><TD>Default Real type</TD></TR>
<TR valign=top>
<TD>C_LONG_LONG</TD><TD>INTEGER*8</TD><TD>Extended size integer</TD></TR>
<TR valign=top>
<TD>C_STRING</TD><TD>CHARACTER*(PAPI_MAX_STR_LEN)</TD><TD>Fortran string</TD></TR>
<TR valign=top>
<TD>C_INT FUNCTION</TD><TD>EXTERNAL INTEGER FUNCTION</TD><TD>Fortran function returning integer result
</TD></TR>
<TR valign=top>
<TD>C_INT(*)</TD><TD rowspan=3>Array of corresponding type
</TD><TD rowspan=3>C_TYPE(*) refers to an array of the corresponding Fortan type.
The length of the array needed is context dependent. It may be
e.g. PAPI_MAX_HWCTRS or PAPIF_num_counters.
</TD></TR>
<TR valign=top>
<TD>C_FLOAT(*)</TD></TR>
<TR valign=top>
<TD>C_LONG_LONG(*)</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<P>
Array arguments must be of sufficent size to hold the input/output
from/to the subroutine for predictable behavior. The array length is
indicated either by the accompanying argument or by internal PAPI
definitions. For details on this see the corresponding C routine.
<P>
Subroutines accepting
<!-- .B C_STRING  -->
<B>C_STRING</B> as an argument are on most implementations capable of reading the
character string length as provided by Fortran. In these implementations
the string is truncated or space padded as necessary. For other
implementations the length of the character array is assumed to be
of sufficient size. No character string longer than
<!-- .B PAPI_MAX_STR_LEN -->
<B>PAPI_MAX_STR_LEN</B> is returned by the PAPIF interface.
<P>
<!-- .SH RETURN VALUES -->
</BLOCKQUOTE>
<A name=3>

     <H3>RETURN VALUES</H3>

</A>
<BLOCKQUOTE>
The return code of the corresponding C routine is returned in the argument
<!-- .B check -->
<B>check</B> in the Fortran interface.
<P>
<!-- .SH SEE ALSO -->
</BLOCKQUOTE>
<A name=4>

     <H3>SEE ALSO</H3>

</A>
<BLOCKQUOTE>
 The PAPI Interface: 
<!-- .BR PAPI(3) -->
<A HREF="papi.html">PAPI (3)</A> 
</BLOCKQUOTE>
<P><HR>
<TABLE width=100%><TR> <TD width=33%><I>PAPI Programmer&#146;s Reference</I></TD> <TD width=33% align=center>PAPIF (3)</TD> <TD align=right width=33%><I>September, 2004</I></TD> </TR></TABLE>
<HR SIZE="1">

</TD>

</TR>

</TABLE>

</TD>

</TR>

<TR>

<TD VALIGN="top">

<TABLE WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="5" ALIGN="center">

<TR>

<TD>

</TD>

</TR>

<TR>

<TD HEIGHT="92">

<TABLE WIDTH="760" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center" VSPACE="0" HSPACE="0">

<TR VALIGN="top">

<TD ALIGN="left" BACKGROUND="../images/stripes2.jpg" ROWSPAN="2">&nbsp;

 

</TD>

<TD ALIGN="right" HEIGHT="39" BACKGROUND="../images/stripes2.jpg" WIDTH="280">

<IMG SRC="../images/trans.gif" WIDTH="280" HEIGHT="63" VSPACE="0" HSPACE="0">

</TD>

<TD ALIGN="left" HEIGHT="63" WIDTH="200" BACKGROUND="../images/spinbg.jpg">

<A HREF="http://icl.cs.utk.edu/" ONMOUSEOUT="MM_swapImgRestore()" ONMOUSEOVER="MM_swapImage('Image10','','../images/spinlogo.gif',1)">

<IMG NAME="Image10" BORDER="0" SRC="../images/stable.gif" WIDTH="200" HEIGHT="63" HSPACE="0" VSPACE="0" ALIGN="left" ALT="Innovative Computing Laboratory">

</A>

</TD>

<TD ALIGN="left" HEIGHT="0" ROWSPAN="2" VALIGN="top" WIDTH="140">

<DIV ALIGN="left">

<IMG SRC="../images/trans.gif" WIDTH="140" HEIGHT="75" BORDER="0" ALIGN="left" VSPACE="0" HSPACE="0">

</DIV>

</TD>

<TD ALIGN="left" ROWSPAN="2" VALIGN="top" WIDTH="140">

<IMG SRC="../images/rd.jpg" WIDTH="140" HEIGHT="75" BORDER="0" ALIGN="right" VSPACE="0" HSPACE="0" ALT="2001 R&amp;D Winner">

</TD>

<TD ALIGN="right" ROWSPAN="3" VALIGN="top" BGCOLOR="#FFFFFF">&nbsp;

 

</TD>

</TR>

<TR VALIGN="top">

<TD ALIGN="center" HEIGHT="22" ROWSPAN="2" VALIGN="TOP">

<SPAN CLASS="FOOTERNOTE">

Contact PAPI: 

<A HREF="mailto:papi@cs.utk.edu">

papi@cs.utk.edu</A>

</SPAN>

</TD>

<TD ALIGN="center" HEIGHT="11" WIDTH="200">

<A HREF="http://www.cs.utk.edu/" ONMOUSEOUT="MM_swapImgRestore()" ONMOUSEOVER="MM_swapImage('Image11','','../images/cssigon.gif',1)">

<IMG NAME="Image11" BORDER="0" SRC="../images/cssigoff.gif" WIDTH="200" HEIGHT="11" ALIGN="left" HSPACE="0" VSPACE="0" ALT="Computer Science Department">

</A>

</TD>

</TR>

<TR VALIGN="top">

<TD ALIGN="left">&nbsp;

 

</TD>

<TD ALIGN="CENTER" HEIGHT="11" WIDTH="200" VALIGN="top">

<A HREF="http://www.utk.edu/" ONMOUSEOUT="MM_swapImgRestore()" ONMOUSEOVER="MM_swapImage('Image12','','../images/utsigon.gif',1)">

<IMG NAME="Image12" BORDER="0" SRC="../images/utsigoff.gif" WIDTH="200" HEIGHT="11" VSPACE="0" HSPACE="0" ALIGN="left" ALT="University of Tennessee">

</A>

</TD>

<TD ALIGN="left" HEIGHT="0" COLSPAN="2" VALIGN="top">&nbsp;

 

</TD>

</TR>

</TABLE>

</TD>

</TR>

</TABLE>

</TD>

</TR>

<TR>

<TD VALIGN="top">&nbsp;

 

</TD>

</TR>

</TABLE>

</BODY>

</HTML>

